
###########################################################################
ifneq ($(COMSPEC),)
DO_WIN:=1
endif
ifneq ($(ComSpec),)
DO_WIN:=1
endif 

ifeq ($(DO_WIN),1)
EXEEXT = .exe
endif

ifeq ($(DO_WIN),1)
COMPILEDEXT = .exe
else
COMPILEDEXT = .out
endif

CROSS_LIB_PATH := cross_lib

BUILD_PATH ?= ../build

######################################

TILES_PATH ?= $(SOURCE_PATH)/tiles

# 8X8_TILES_PATH ?= $(TILES_PATH)/8x8
# 7X8_TILES_PATH ?= $(TILES_PATH)/7x8
# 6X8_TILES_PATH ?= $(TILES_PATH)/6x8
# 6X9_TILES_PATH ?= $(TILES_PATH)/6x9
# 8x6_TILES_PATH ?= $(TILES_PATH)/8x6

#######################################################################
# Cross Lib includes + game's graphics data

INCLUDE_OPTS ?= -I$(CROSS_LIB_PATH) -I$(CROSS_LIB_PATH)/sleep \
-I$(CROSS_LIB_PATH)/display \
-I$(CROSS_LIB_PATH)/display/graphics_mode \
-I$(CROSS_LIB_PATH)/display/alt_print \
-I$(CROSS_LIB_PATH)/include \
-I$(CROSS_LIB_PATH)/sound \
-I$(CROSS_LIB_PATH)/sound/cc65/atmos \
-I$(CROSS_LIB_PATH)/sound/cc65/c264 \
-I$(CROSS_LIB_PATH)/sound/cc65/pokey \
-I$(CROSS_LIB_PATH)/sound/cc65/sid \
-I$(CROSS_LIB_PATH)/sound/cc65/vic20 \
-I$(CROSS_LIB_PATH)/sound/cc65/gamate \
-I$(CROSS_LIB_PATH)/sound/cc65/creativision \
-I$(CROSS_LIB_PATH)/sound/cc65/atari_lynx \
-I$(CROSS_LIB_PATH)/sound/cc65/pet \
-I$(CROSS_LIB_PATH)/sound/cc65/supervision \
-I$(CROSS_LIB_PATH)/sound/z88dk/bit_bang \
-I$(CROSS_LIB_PATH)/sound/z88dk/gb \
-I$(CROSS_LIB_PATH)/sound/z88dk/psg \
-I$(CROSS_LIB_PATH)/sound/lcc1802/comx \
-I$(CROSS_LIB_PATH)/sound/cmoc/mo5 \
-I$(CROSS_LIB_PATH)/sound/generic \
-I$(CROSS_LIB_PATH)/sound/gcc4ti99 \
-I$(CROSS_LIB_PATH)/text \
-I$(CROSS_LIB_PATH)/input \
-I$(CROSS_LIB_PATH)/rand \
-I$(CROSS_LIB_PATH)/display/redefine_characters \
-I$(CROSS_LIB_PATH)/display/tiles \
-I$(ASSETS_PATH) \
-I$(SOURCE_PATH)


TOOLS_PATH ?= ../tools

CFG_PATH ?= $(CROSS_LIB_PATH)/cfg/


#####################################################################
# CrossLib files
BASIC_CROSS_LIB_FILES ?= \
	$(CROSS_LIB_PATH)/display/display_macros.c \
	$(CROSS_LIB_PATH)/input/input_macros.c \
	$(CROSS_LIB_PATH)/text/text_macros.c


#################################################################
# Clean targets
clean_chase_obj:
	rm -rf $(SOURCE_PATH)/*.o

clean_game_assets: 
	if [ -d $(ASSETS_PATH) ]; then echo "generated assets dir exists"; cd $(ASSETS_PATH); pwd; ls -l; rm -rf *.s; rm -rf *.h; rm -rf *.asm; else echo "generated assets dir does NOT exist"; fi

clean_assets: clean_game_assets

clean_chase_temp:
	rm -rf $(SOURCE_PATH)/wincmoc_main.c
	rm -rf $(SOURCE_PATH)/wincmoc_main.asm
	rm -rf $(SOURCE_PATH)/wincmoc_main.coco.bin
	rm -rf $(SOURCE_PATH)/../full_comx_combo.c
	rm -rf $(SOURCE_PATH)/../light_comx_combo.c
	rm -rf $(SOURCE_PATH)/../tiny_comx_combo.c
	rm -rf $(SOURCE_PATH)/../full_comx_combo.asm
	rm -rf $(SOURCE_PATH)/../light_comx_combo.asm
	rm -rf $(SOURCE_PATH)/../tiny_comx_combo.asm
	rm -rf $(SOURCE_PATH)/../full_pecom_combo.c
	rm -rf $(SOURCE_PATH)/../light_pecom_combo.c
	rm -rf $(SOURCE_PATH)/../tiny_pecom_combo.c
	rm -rf $(SOURCE_PATH)/../full_pecom_combo.asm
	rm -rf $(SOURCE_PATH)/../light_pecom_combo.asm
	rm -rf $(SOURCE_PATH)/../tiny_pecom_combo.asm

clean_lib_obj:
	find . -type f -name '*.o' -delete

clean_i_files:
	find . -type f -name '*.i' -delete
    
clean_lis:
	find . -type f -name '*.lis' -delete


clean_obj: \
	clean_chase_obj \
	clean_chase_temp \
	clean_lib_obj \
    clean_lis

clean_build:
	rm -rf $(BUILD_PATH)/*

clean_generic_combo:
	rm -rf games/reduced_full_lcc1802_color_combo.c
	rm -rf games/reduced_full_lcc1802_combo_no_sounds.*
	rm -rf games/full_lcc1802_combo.*
	rm -rf games/full_combo_rand.c  
	rm -rf examples/reduced_full_lcc1802_color_combo.c
	rm -rf examples/reduced_full_lcc1802_combo_no_sounds.*
	rm -rf examples/full_lcc1802_combo.*
	rm -rf examples/full_combo_rand.c 
	rm -rf *.stackdump

clean_generic_no_built_in: \
    clean_generic_combo \
    clean_lib_obj \
    clean_lis

clean_generic: \
    clean_generic_combo \
    clean_build \
    clean_lib_obj \
    clean_lis

clean: \
    clean_generic_combo \
	clean_obj \
	clean_build \
	clean_game_assets

clean_no_built_in: \
    clean_generic_combo \
	clean_obj \
	clean_game_assets

help:
	cat ../docs/BUILD.md

list:
	cat ../docs/SYSTEMS.md
    
status:
	cat ../docs/STATUS.md
